/**
 * 分类编辑页面交互逻辑
 */
import { fetchDataById, updateDataItem } from '../../js/api.js';

/**
 * 从URL获取分类ID
 */
function getCategoryIdFromUrl() {
    const params = new URLSearchParams(window.location.search);
    const id = params.get('id');
    return id ? parseInt(id) : null;
}

/**
 * 加载分类数据到表单
 * @param {Object} data - 分类数据
 */
function loadCategoryDataToForm(data) {
    document.getElementById('categoryId').value = data.id;
    document.getElementById('name').value = data.name || '';
    document.getElementById('parentId').value = data.parent_id || '';
    document.getElementById('description').value = data.description || '';
}

/**
 * 加载分类详情数据
 */
async function loadCategoryData() {
    const id = getCategoryIdFromUrl();
    if (!id) {
        alert('无效的分类ID');
        window.location.href = 'list.html';
        return;
    }

    try {
        const data = await fetchDataById(id);
        loadCategoryDataToForm(data);
    } catch (error) {
        console.error('加载分类数据失败:', error);
        alert('加载分类数据失败: ' + (error.message || '未知错误'));
    }
}

/**
 * 初始化表单提交事件监听
 */
function initFormSubmit() {
    const editForm = document.getElementById('editForm');
    editForm.addEventListener('submit', async (e) => {
        e.preventDefault();

        const id = getCategoryIdFromUrl();
        if (!id) return;

        // 获取表单数据
        const formData = {
            name: document.getElementById('name').value.trim(),
            parent_id: document.getElementById('parentId').value || null,
            description: document.getElementById('description').value.trim()
        };

        // 简单表单验证
        if (!formData.name) {
            alert('请输入分类名称');
            return;
        }

        try {
            // 调用API更新分类
            const success = await updateDataItem(id, formData);
            if (success) {
                alert('分类更新成功！');
                window.location.href = `detail.html?id=${id}`;
            }
        } catch (error) {
            console.error('更新分类失败:', error);
            alert('更新分类失败: ' + (error.message || '未知错误'));
        }
    });
}

// 页面加载完成后初始化
window.addEventListener('DOMContentLoaded', () => {
    loadCategoryData();
    initFormSubmit();
});